home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / linux / if_arp.h < prev    next >
C/C++ Source or Header  |  2009-10-16  |  6KB  |  159 lines

  1. /*
  2.  * INET        An implementation of the TCP/IP protocol suite for the LINUX
  3.  *        operating system.  INET is implemented using the  BSD Socket
  4.  *        interface as the means of communication with the user level.
  5.  *
  6.  *        Global definitions for the ARP (RFC 826) protocol.
  7.  *
  8.  * Version:    @(#)if_arp.h    1.0.1    04/16/93
  9.  *
  10.  * Authors:    Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988
  11.  *        Portions taken from the KA9Q/NOS (v2.00m PA0GRI) source.
  12.  *        Ross Biro
  13.  *        Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
  14.  *        Florian La Roche,
  15.  *        Jonathan Layes <layes@loran.com>
  16.  *        Arnaldo Carvalho de Melo <acme@conectiva.com.br> ARPHRD_HWX25
  17.  *
  18.  *        This program is free software; you can redistribute it and/or
  19.  *        modify it under the terms of the GNU General Public License
  20.  *        as published by the Free Software Foundation; either version
  21.  *        2 of the License, or (at your option) any later version.
  22.  */
  23. #ifndef _LINUX_IF_ARP_H
  24. #define _LINUX_IF_ARP_H
  25.  
  26. #include <linux/netdevice.h>
  27.  
  28. /* ARP protocol HARDWARE identifiers. */
  29. #define ARPHRD_NETROM    0        /* from KA9Q: NET/ROM pseudo    */
  30. #define ARPHRD_ETHER     1        /* Ethernet 10Mbps        */
  31. #define    ARPHRD_EETHER    2        /* Experimental Ethernet    */
  32. #define    ARPHRD_AX25    3        /* AX.25 Level 2        */
  33. #define    ARPHRD_PRONET    4        /* PROnet token ring        */
  34. #define    ARPHRD_CHAOS    5        /* Chaosnet            */
  35. #define    ARPHRD_IEEE802    6        /* IEEE 802.2 Ethernet/TR/TB    */
  36. #define    ARPHRD_ARCNET    7        /* ARCnet            */
  37. #define    ARPHRD_APPLETLK    8        /* APPLEtalk            */
  38. #define ARPHRD_DLCI    15        /* Frame Relay DLCI        */
  39. #define ARPHRD_ATM    19        /* ATM                 */
  40. #define ARPHRD_METRICOM    23        /* Metricom STRIP (new IANA id)    */
  41. #define    ARPHRD_IEEE1394    24        /* IEEE 1394 IPv4 - RFC 2734    */
  42. #define ARPHRD_EUI64    27        /* EUI-64                       */
  43. #define ARPHRD_INFINIBAND 32        /* InfiniBand            */
  44.  
  45. /* Dummy types for non ARP hardware */
  46. #define ARPHRD_SLIP    256
  47. #define ARPHRD_CSLIP    257
  48. #define ARPHRD_SLIP6    258
  49. #define ARPHRD_CSLIP6    259
  50. #define ARPHRD_RSRVD    260        /* Notional KISS type         */
  51. #define ARPHRD_ADAPT    264
  52. #define ARPHRD_ROSE    270
  53. #define ARPHRD_X25    271        /* CCITT X.25            */
  54. #define ARPHRD_HWX25    272        /* Boards with X.25 in firmware    */
  55. #define ARPHRD_CAN    280        /* Controller Area Network      */
  56. #define ARPHRD_PPP    512
  57. #define ARPHRD_CISCO    513        /* Cisco HDLC             */
  58. #define ARPHRD_HDLC    ARPHRD_CISCO
  59. #define ARPHRD_LAPB    516        /* LAPB                */
  60. #define ARPHRD_DDCMP    517        /* Digital's DDCMP protocol     */
  61. #define ARPHRD_RAWHDLC    518        /* Raw HDLC            */
  62.  
  63. #define ARPHRD_TUNNEL    768        /* IPIP tunnel            */
  64. #define ARPHRD_TUNNEL6    769        /* IP6IP6 tunnel               */
  65. #define ARPHRD_FRAD    770             /* Frame Relay Access Device    */
  66. #define ARPHRD_SKIP    771        /* SKIP vif            */
  67. #define ARPHRD_LOOPBACK    772        /* Loopback device        */
  68. #define ARPHRD_LOCALTLK 773        /* Localtalk device        */
  69. #define ARPHRD_FDDI    774        /* Fiber Distributed Data Interface */
  70. #define ARPHRD_BIF      775             /* AP1000 BIF                   */
  71. #define ARPHRD_SIT    776        /* sit0 device - IPv6-in-IPv4    */
  72. #define ARPHRD_IPDDP    777        /* IP over DDP tunneller    */
  73. #define ARPHRD_IPGRE    778        /* GRE over IP            */
  74. #define ARPHRD_PIMREG    779        /* PIMSM register interface    */
  75. #define ARPHRD_HIPPI    780        /* High Performance Parallel Interface */
  76. #define ARPHRD_ASH    781        /* Nexus 64Mbps Ash        */
  77. #define ARPHRD_ECONET    782        /* Acorn Econet            */
  78. #define ARPHRD_IRDA     783        /* Linux-IrDA            */
  79. /* ARP works differently on different FC media .. so  */
  80. #define ARPHRD_FCPP    784        /* Point to point fibrechannel    */
  81. #define ARPHRD_FCAL    785        /* Fibrechannel arbitrated loop */
  82. #define ARPHRD_FCPL    786        /* Fibrechannel public loop    */
  83. #define ARPHRD_FCFABRIC    787        /* Fibrechannel fabric        */
  84.     /* 787->799 reserved for fibrechannel media types */
  85. #define ARPHRD_IEEE802_TR 800        /* Magic type ident for TR    */
  86. #define ARPHRD_IEEE80211 801        /* IEEE 802.11            */
  87. #define ARPHRD_IEEE80211_PRISM 802    /* IEEE 802.11 + Prism2 header  */
  88. #define ARPHRD_IEEE80211_RADIOTAP 803    /* IEEE 802.11 + radiotap header */
  89. #define ARPHRD_IEEE802154      804
  90. #define ARPHRD_IEEE802154_PHY      805
  91.  
  92. #define ARPHRD_PHONET    820        /* PhoNet media type        */
  93. #define ARPHRD_PHONET_PIPE 821        /* PhoNet pipe header        */
  94.  
  95. #define ARPHRD_VOID      0xFFFF    /* Void type, nothing is known */
  96. #define ARPHRD_NONE      0xFFFE    /* zero header length */
  97.  
  98. /* ARP protocol opcodes. */
  99. #define    ARPOP_REQUEST    1        /* ARP request            */
  100. #define    ARPOP_REPLY    2        /* ARP reply            */
  101. #define    ARPOP_RREQUEST    3        /* RARP request            */
  102. #define    ARPOP_RREPLY    4        /* RARP reply            */
  103. #define    ARPOP_InREQUEST    8        /* InARP request        */
  104. #define    ARPOP_InREPLY    9        /* InARP reply            */
  105. #define    ARPOP_NAK    10        /* (ATM)ARP NAK            */
  106.  
  107.  
  108. /* ARP ioctl request. */
  109. struct arpreq {
  110.   struct sockaddr    arp_pa;        /* protocol address        */
  111.   struct sockaddr    arp_ha;        /* hardware address        */
  112.   int            arp_flags;    /* flags            */
  113.   struct sockaddr       arp_netmask;    /* netmask (only for proxy arps) */
  114.   char            arp_dev[16];
  115. };
  116.  
  117. struct arpreq_old {
  118.   struct sockaddr    arp_pa;        /* protocol address        */
  119.   struct sockaddr    arp_ha;        /* hardware address        */
  120.   int            arp_flags;    /* flags            */
  121.   struct sockaddr       arp_netmask;    /* netmask (only for proxy arps) */
  122. };
  123.  
  124. /* ARP Flag values. */
  125. #define ATF_COM        0x02        /* completed entry (ha valid)    */
  126. #define    ATF_PERM    0x04        /* permanent entry        */
  127. #define    ATF_PUBL    0x08        /* publish entry        */
  128. #define    ATF_USETRAILERS    0x10        /* has requested trailers    */
  129. #define ATF_NETMASK     0x20            /* want to use a netmask (only
  130.                        for proxy entries) */
  131. #define ATF_DONTPUB    0x40        /* don't answer this addresses    */
  132.  
  133. /*
  134.  *    This structure defines an ethernet arp header.
  135.  */
  136.  
  137. struct arphdr
  138. {
  139.     __be16        ar_hrd;        /* format of hardware address    */
  140.     __be16        ar_pro;        /* format of protocol address    */
  141.     unsigned char    ar_hln;        /* length of hardware address    */
  142.     unsigned char    ar_pln;        /* length of protocol address    */
  143.     __be16        ar_op;        /* ARP opcode (command)        */
  144.  
  145. #if 0
  146.      /*
  147.       *     Ethernet looks like this : This bit is variable sized however...
  148.       */
  149.     unsigned char        ar_sha[ETH_ALEN];    /* sender hardware address    */
  150.     unsigned char        ar_sip[4];        /* sender IP address        */
  151.     unsigned char        ar_tha[ETH_ALEN];    /* target hardware address    */
  152.     unsigned char        ar_tip[4];        /* target IP address        */
  153. #endif
  154.  
  155. };
  156.  
  157.  
  158. #endif    /* _LINUX_IF_ARP_H */
  159.